Patchmix is a graphical interface to the Cmix Programming Language. Within it, \
you can create and test Cmix instruments. Since the code for the instrument is written\
out to a specified directory, you can then work with this code later and modify it as you\
wish. Patchmix can be helpful either to someone learning Cmix or for quickly putting together\
instruments, which can then be modified as necessary. To run it, you need Cmix installed\
in the directory specified in your file information window. \
To get started, first make sure you have correct file info in the File Information panel and for the instrument name and path on the Patchmix window. The default values assume a "NewInst" and "sf" directory or link exists in your home directory for the instrument and sound files. Then, drag unit generators from the palette window onto the white patch view. Double-click on any unwanted unit generators to remove them. To set parameters for their inputs, double click on the parameter knob and set the value in the top right param field. Click again on the parameter to save the value and un-highlight the parameter. Then, connect the unit generators, outputs to inputs, by dragging the mouse from output to input. Redrawing will erase them. When you're done making a patch, write out a score from the Score Data panel, being sure to fill in any designated parameter fields if you used them in the input parameters (i.e., p[3] could be a frequency input to an oscillator). Cmix p-fields default to "0". Then, you're ready to test it out. Hit the "write code", "compile", "run", "rescale" and "play" buttons. To make sure each process has finished before starting the next, watch the "display output" window.\
Send any bugs, suggestions or comments to mara@woof.music.columbia.edu.\
\b\i Main Window
\b0\i0 \
The main window is where the flow chart is constructed, and where you select instrument-\
building functions with the compile, play or run buttons. Also, the name of your instrument\
and the directory where you want the code to be written should be specified in the form fields.\
To the right, the "param" field holds values you want to store as inputs to the unit generators.\
\b\i Panel Buttons
\b0\i0 \
\b reset
\b0 will clear the flow chart off the screen (except for the output unit generator).\
This is an irreversible procedure.\
\b write code
\b0 will write out the Cmix code into the "NewInst" directory, under filenames\
"inst1.c", "Makefile" and "profile.c". If you already have these files in this directory\
they will be overwritten. If you specify different file names and path in the main window, they will be used. \
\b compile
\b0 will compile the new instrument program.\
\b run
\b0 creates the sound file by running the Cmix program.\
\b rescale
\b0 will rescale the sound file from a floating point to an integer sound file.\
\b play
\b0 will play the sound file.\
\b compile
\b0 will compile the instrument that has been written out.\
\b run
\b0 will run the cmix job using the instrument specified in the main window, and the\
score file and sound file specified in the file information window.\
\b rescale
\b0 will rescale the soundfile into a playable integer file.\
\b play
\b0 will play the soundfile.\
Warning: Loops in the patch will not work. The output of a unit generator can only be\
connected to one other unit generator.\
\b\i Cmix Unit Generators\
\b0\i0 The unit generator panel contains in the first row an oscilator, buzz, random number\
generator, evp (simple envelope with attack and decay) and a reson filter. The\
second and fourth rows are not yet working. The third row contains addition, subtraction\
multiplication and division operators. The six items in the right-most column are pitch\
converters. "pch" means octave.pitch class representation, "oct" means octave.decimal,\
and "cps" means Hertz or cycles per second. So, "pchcps" converts from Hz to octave.\
pitch class notation. The Cmix man pages explain more about these unit generators.\
The input values to each parameter or argument of the unit generator may be set internally\
by Patchmix, or more often can be set by the user in the "Param" field at the top of the main\
window. If the value is something that should be determined by the data or score file\
and not specified in the instrument, enter a new p-field number in the Param field when this\
input is selected. For example, in a one-oscil instrument, perhaps frequency should be a \
p-field. Go to the Score Data window, choose an unused p-field (i.e. p[3]), and enter\